<?php
/**
* @package      auto_occasion
* @subpackage   commun
* @version  1
* @author CMS
*/

/**
* Classe utile dans tout le site pour le fil d'ariane
* @package      auto_occasion
* @subpackage   commun
*/
class breadCrumbSrv{
   
 /**
  * chargement du fil d'ariane
  * @param   array  $tMenu       tableau vide initial
  * @return array  $tFilAriane   tableau contenant le fil
  **/        
    public static function load ($tMenu = array()) {
        global $gJCoord;
        jClasses::inc('commun~MenuItem');
        jClasses::inc("annonce~annonceSrv");
        jClasses::inc('commun~common');
        jClasses::inc('essais~rappelSrv') ;
        jClasses::inc('essais~essaisSrv') ;
        jClasses::inc('guideAchat~guideAchatSrv') ;
		jClasses::inc ("commun~parametre") ;

        // fil d'Ariane
        $tFilAriane = array();
        switch ($tMenu[0]) {
            // menu accueil
            case frontHtmlResponse::MENU_ACCUEIL :
                array_push($tFilAriane, new MenuItem('Accueil', 'Accueil', jUrl::get('accueil~FoHome:index'), ''));
                if (isset($tMenu[1])) {
                    switch ($tMenu[1]) {
                        // Accueil > Annonce
                        case frontHtmlResponse::MENU_RECHERCHE:
                            array_push($tFilAriane, new MenuItem('Recherche', 'Recherche', jUrl::get('recherche~FoRecherche:index'), ''));
                            // Ajout des critères de recherche
                            // ex : Accueil > Annonce > Audi > 100 > 4 portes
                            if (isset($_SESSION['SESS_ANNONCE_SEARCH'])) {
                                $critere = unserialize($_SESSION['SESS_ANNONCE_SEARCH']);
                                if ($critere->marque && $critere->marqueId) {
                                    array_push($tFilAriane, new MenuItem($critere->marque, $critere->marque, jUrl::get('recherche~FoRecherche:index', array('marque'=>$critere->marqueId)), ''));
                                }
                                if ($critere->modele && $critere->modeleId) {
                                    array_push($tFilAriane, new MenuItem($critere->modele, $critere->modele, '#', ''));
                                }
                            } // --- fin test isset session
                            break;
                            // Accueil > Alpha romeo guilleta
                        case frontHtmlResponse::MENU_FICHE:
                            $id = $gJCoord->request->params['id']; // id de l'annonce
                            $annonce = annonceSrv::getAll(1, $id);
                            $fil = $annonce[0]->marque_libelle . ' ' . $annonce[0]->modele_libelle . ' ' . $annonce[0]->Occas_Version;
                            array_push($tFilAriane, new MenuItem('Recherche', 'Recherche', jUrl::get('recherche~FoRecherche:index'), ''));

                            array_push($tFilAriane, new MenuItem($fil, $fil, '#', ''));

                            break;

                        case frontHtmlResponse::MENU_ESSAI:
                            if(isset($gJCoord->request->params['id'])){
                                $id       = $gJCoord->request->params['id'];
                                $chap = null;
                                if(isset($gJCoord->request->params['chap'])){
                                    $chap     = $gJCoord->request->params['chap'];
                                }
                                $essai    = common::chargeParId($id, 'ao_essais');
                                $marque   = common::chargeParId($essai->ess_iMarqueId, 'ao_marque');
                                if ($essai->ess_iModelId) {
                                    $modele   = common::chargeParId($essai->ess_iModelId, 'ao_modele');
                                    $fil = $marque->marque_libelle . ' ' . $modele->modele_libelle;
                                } else {
                                    $fil = $marque->marque_libelle;
                                }

                               // array_push($tFilAriane, new MenuItem('Essai', 'Essai', jUrl::get('essais~FoEssai:index'), ''));
                                array_push($tFilAriane, new MenuItem('Essai', 'Essai', jUrl::get('essais~FoEssaiRecherche:index'), ''));

                                if(!$chap)
                                  array_push($tFilAriane, new MenuItem($fil, $fil, '#', ''));
                                else
                                  array_push($tFilAriane, new MenuItem($fil, $fil, jUrl::get('essais~FoEssai:index', array('id'=>$id)),''));

                                if($chap){
                                        $chapitre            = ($chap) ? common::chargeParId($chap, 'ao_essais_chapitre') : common::init('ao_essais_chapitre');
                                        $chapitre->chap_name = (isset($chapitre->chap_name_id) && $chapitre->chap_name_id) ? common::chargeParId($chapitre->chap_name_id, 'ao_chapitre_names')->chap_name : "";
                                        //$chapitre = common::chargeParId($chap, 'ao_chapitre_names');
                                        if( isset($chapitre->chap_name)){
                                            array_push($tFilAriane, new MenuItem($chapitre->chap_name, $chapitre->chap_name, '#', ''));
                                        }
                                }
                            }
                            else{
                                array_push($tFilAriane, new MenuItem('Essai', 'Essai', '#', ''));
                            }
                            

                            break;

                         //fil d'ariane pour la fiabilite 
                         case  frontHtmlresponse::MENU_FIABILITE: 
                                 $id       = $gJCoord->request->params['id'];
                                 $essai    = common::chargeParId($id, 'ao_essais');
                                 $marque   = common::chargeParId($essai->ess_iMarqueId, 'ao_marque');
                                 if ($essai->ess_iModelId) {
                                    $modele   = common::chargeParId($essai->ess_iModelId, 'ao_modele');
                                    $fil = $marque->marque_libelle . ' ' . $modele->modele_libelle;
                                 } else {
                                    $fil = $marque->marque_libelle;
                                 }
                                 array_push($tFilAriane, new MenuItem('Essai', 'Essai', jUrl::get('essais~FoEssaiRecherche:index'), ''));                                  
                                 array_push($tFilAriane, new MenuItem($fil, $fil, jUrl::get('essais~FoEssai:index', array('id'=>$id)), ''));
                                 array_push($tFilAriane, new MenuItem('Fiabilité, Appréciation, Concurrentes', 'Fiabilité, Appréciation, Concurrentes', '#', ''));
                                 break;

                         //fil d'ariane pour les meilleures versions 
                         case  frontHtmlresponse::MENU_VERSION: 
                                 $id       = $gJCoord->request->params['id'];
                                 $essai    = common::chargeParId($id, 'ao_essais');
                                 $marque   = common::chargeParId($essai->ess_iMarqueId, 'ao_marque');
                                 if ($essai->ess_iModelId) {
                                    $modele   = common::chargeParId($essai->ess_iModelId, 'ao_modele');
                                    $fil = $marque->marque_libelle . ' ' . $modele->modele_libelle;
                                 } else {
                                    $fil = $marque->marque_libelle;
                                 }
                                 array_push($tFilAriane, new MenuItem('Essai', 'Essai', jUrl::get('essais~FoEssaiRecherche:index'), ''));                                  
                                 array_push($tFilAriane, new MenuItem($fil, $fil, jUrl::get('essais~FoEssai:index', array('id'=>$id)), ''));
                                 array_push($tFilAriane, new MenuItem(' Meilleures versions', 'Meilleures versions', '#', ''));
                                 break;

                         //fil d'ariane pour les caractéristiques et équipements  
                         case  frontHtmlresponse::MENU_CARACTERISTIQUE: 
                                 $id       = $gJCoord->request->params['id'];
                                 $essai    = common::chargeParId($id, 'ao_essais');
                                 $marque   = common::chargeParId($essai->ess_iMarqueId, 'ao_marque');
                                 if ($essai->ess_iModelId) {
                                    $modele   = common::chargeParId($essai->ess_iModelId, 'ao_modele');
                                    $fil = $marque->marque_libelle . ' ' . $modele->modele_libelle;
                                 } else {
                                    $fil = $marque->marque_libelle;
                                 }
                                 array_push($tFilAriane, new MenuItem('Essai', 'Essai', jUrl::get('essais~FoEssaiRecherche:index'), ''));                                  
                                 array_push($tFilAriane, new MenuItem($fil, $fil, jUrl::get('essais~FoEssai:index', array('id'=>$id)), ''));
                                 array_push($tFilAriane, new MenuItem(' Caractéristiques / équipements ', 'Caractéristiques / équipements', '#', ''));
                                 break;

                        case  frontHtmlresponse::MENU_CONCURRENCE:
                                 array_push($tFilAriane, new MenuItem('Essai', 'Essai', jUrl::get('essais~FoEssaiRecherche:index'), ''));                                  

                                 $id         = $gJCoord->request->params['concurId'];

                                 $concur     = common::chargeParId($id, 'ao_essais_concurrence');
                                 $marque     = common::chargeParId($concur->concur_marque_id, 'ao_marque');
                                 $modele     = common::chargeParId($concur->concur_modele_id, 'ao_modele');

                                 $critere           = new stdClass();
                                 $critere->marqueId = $concur->concur_marque_id;
                                 $critere->modeleId = $concur->concur_modele_id;
                                 $essais     = essaisSrv::getEssaiByCritere($critere);

                                 if (sizeof($essais) > 1){
                                       $fil     =  $marque->marque_libelle . ' ' . $modele->modele_libelle;
                                       array_push($tFilAriane, new MenuItem($fil, $fil, '#', ''));
                                 } else {

                                        $essai    = common::chargeParId($essais[0]->ess_id, 'ao_essais');
                                        $marque   = common::chargeParId($essai->ess_iMarqueId, 'ao_marque');
                                        if ($essai->ess_iModelId) {
                                            $modele   = common::chargeParId($essai->ess_iModelId, 'ao_modele');
                                            $fil = $marque->marque_libelle . ' ' . $modele->modele_libelle;
                                        } else {
                                            $fil = $marque->marque_libelle;
                                        }
                                        array_push($tFilAriane, new MenuItem($fil, $fil,'#', ''));
                                 }


                                 break;

                        
                        case frontHtmlResponse::MENU_ENTREPRISE:
                             $type_id  = $gJCoord->request->params['type'];
                             $dept     = $gJCoord->request->params['cur'];
                             $type     = common::chargeParId($type_id, 'ao_type_entreprise');
                             $region   = entrepriseSrv::getRegion($dept);
                             $fil      = $type->type_name;
                             array_push($tFilAriane, new MenuItem('Entreprise', 'Entreprise','#', ''));
                             array_push($tFilAriane, new MenuItem($fil, $fil, jurl::get('localite~FoLocalite:index', array('id'=>$type->type_id)), ''));
                             break;
                        case frontHtmlResponse::MENU_LOCALITE_MARQUE:
                             array_push($tFilAriane, new MenuItem('Consultations d\'annonces', 'Consultations d\'annonces', "#", ''));
                             array_push($tFilAriane, new MenuItem('Par marques', 'Par marques', "#", ''));
                             break;
                        case frontHtmlResponse::MENU_LOCALITE_DEPARTEMENT:
                             array_push($tFilAriane, new MenuItem('Consultations d\'annonces', 'Consultations d\'annonces', "#", ''));
                             array_push($tFilAriane, new MenuItem('Par départements', 'Par départements', "#", ''));
                             break;
                            
                             
                        case frontHtmlResponse::MENU_LOCALITE:
                             $id         = $gJCoord->request->params['id'];         
                             $type       = common::chargeParId($id, 'ao_type_entreprise');
                             $fil        = $type->type_name.' par departement,région ou ville';
                             array_push($tFilAriane, new MenuItem($fil, $fil, "#", ''));
                             break;
                         
                        case frontHtmlResponse::MENU_GUIDE_ACHAT:
                            array_push($tFilAriane, new MenuItem('Sommaire du guide d\'achat', 'Sommaire du guide d\'achat', jUrl::get('guideAchat~FoGuideAchat:index'), '')); 
                            if(isset($gJCoord->request->params['id'])){
                                $type = $gJCoord->request->params['id'];
                                $fil = guideAchatSrv::getPageName($type);
                                //$fil = 'Guide achat';
                                array_push($tFilAriane, new MenuItem($fil['fil'], $fil['fil'], "#", ''));
                            }
                             break;

                        case frontHtmlResponse::MENU_FAQ:
                            array_push($tFilAriane, new MenuItem('Faq pour la gestion des annonces', 'Faq pour la gestion des annonces','#', ''));
                            break;
                        case frontHtmlResponse::MENU_CARTE_GRISE:
                            array_push($tFilAriane, new MenuItem('Carte grise', 'Carte grise','#', ''));
                            break;
                        case frontHtmlResponse::MENU_ASSURANCE:
                            array_push($tFilAriane, new MenuItem('Assurance auto : Les occasions et l\'assurance auto', 'Assurance auto : Les occasions et l\'assurance auto','#', ''));
                            break;
                        case frontHtmlResponse::MENU_CREDIT:
                             array_push($tFilAriane, new MenuItem('Credit auto - credit voiture - simulation credit automobilereprise', 'Credit auto - credit voiture - simulation credit automobile', '#', ''));
                             break;
                        case frontHtmlResponse::MENU_ASSURANCE_AUTO:
                             array_push($tFilAriane, new MenuItem('Assurance auto - assurance voiture - comparateur d\'assurance auto', 'Assurance auto - assurance voiture - comparateur d\'assurance auto', '#', ''));
                             break;
                        case frontHtmlResponse::MENU_SITE_UTILE:
                             array_push($tFilAriane, new MenuItem('Les sites auto utiles', 'Les sites auto utiles', '#', ''));
                             break;
                        case frontHtmlResponse::MENU_SITE_UTILE_LINKS:
                             array_push($tFilAriane, new MenuItem('Les sites auto utiles', 'Les sites auto utiles', jUrl::get('annonce~FoAnnonceFAQ:utile'), ''));
                             array_push($tFilAriane, new MenuItem($tMenu[2], $tMenu[2], '#', ''));
                             break;
                        case frontHtmlResponse::MENU_QUI_NOUS_SOMMES:
                            array_push($tFilAriane, new MenuItem('Qui sommes nous', 'Qui sommes nous', '#', ''));
                            break;

                        case frontHtmlResponse::MENU_CONTACT:
                            array_push($tFilAriane, new MenuItem('Nous contacter', 'Nous contacter', '#', ''));
                            break;
                        case frontHtmlResponse::MENU_CONFIRMATION_CONTACT:
                            array_push($tFilAriane, new MenuItem('Confirmation contact', 'Confirmation contact', '#', ''));
                            break;
                        
                        case frontHtmlResponse::MENU_PIECE_AUTO:
                            array_push($tFilAriane, new MenuItem('Recherche pièces auto', 'Recherche pièces auto',jUrl::get('annonce~FoAnnonceFAQ:pieceAuto') , ''));
                              
                             if(!isset($gJCoord->request->params['marque'])){
                                array_push($tFilAriane, new MenuItem('Pièces auto d\'occasion par marque', 'Pièces auto d\'occasion par marque','#' , ''));
                             }
                             else{
                                if(!isset($gJCoord->request->params['piece']) || ($gJCoord->request->params['piece'] == '')){
                                    if(!isset($gJCoord->request->params['modele']) || ($gJCoord->request->params['modele'] == '')){
                                        array_push($tFilAriane, new MenuItem($gJCoord->request->params['marque']." pièces d'occasion", $gJCoord->request->params['marque']." pièces d'occasion",'#'  , ''));
                                    }
                                    else {
                                        array_push($tFilAriane, new MenuItem('Modèles '.$gJCoord->request->params['marque'], 'Modèles '.$gJCoord->request->params['marque'],jUrl::get('annonce~FoAnnonceFAQ:listePieceAuto',array('marque'=>$gJCoord->request->params['marque']))  , ''));
                                        array_push($tFilAriane, new MenuItem($gJCoord->request->params['marque'].' '.$gJCoord->request->params['modele'].' pièces d\'occasion', $gJCoord->request->params['marque'].' '.$gJCoord->request->params['modele'].' pièces d\'occasion','#'  , ''));
                                    }
                                } else {
                                    array_push($tFilAriane, new MenuItem('Modèles '.$gJCoord->request->params['marque'], 'Modèles '.$gJCoord->request->params['marque'],jUrl::get('annonce~FoAnnonceFAQ:listePieceAuto',array('marque'=>$gJCoord->request->params['marque']))  , ''));
                                    array_push($tFilAriane, new MenuItem('Pièces '.$gJCoord->request->params['marque'].' '.$gJCoord->request->params['modele'], 'Pièces '.$gJCoord->request->params['marque'].' '.$gJCoord->request->params['modele'],jUrl::get('annonce~FoAnnonceFAQ:listePieceAuto',array('marque'=>$gJCoord->request->params['marque'],'modele'=>$gJCoord->request->params['modele']))  , ''));
                                    array_push($tFilAriane, new MenuItem($gJCoord->request->params['marque'].' '.$gJCoord->request->params['modele'].' '.$gJCoord->request->params['piece'], $gJCoord->request->params['marque'].' '.$gJCoord->request->params['modele'].' '.$gJCoord->request->params['piece'],'#' , ''));
                                }
                             }
                             
                            break;
                        case frontHtmlResponse::MENU_DETAIL_PIECE_AUTO:
                            array_push($tFilAriane, new MenuItem('Recherche pièces auto', 'Recherche pièces auto',jUrl::get('annonce~FoAnnonceFAQ:pieceAuto') , ''));
                            array_push($tFilAriane, new MenuItem(' détails pièces pour : '.$gJCoord->request->params['marque'].' '.$gJCoord->request->params['modele'].' '.$gJCoord->request->params['piece'], ' détails pièces pour : '.$gJCoord->request->params['marque'].' '.$gJCoord->request->params['modele'].' '.$gJCoord->request->params['piece'],'#' , ''));
                            break;
                        case frontHtmlResponse::MENU_ANNONCE_MENTION_LEGALE:
                            array_push($tFilAriane, new MenuItem('Mentions légales', 'Mentions légales','#' , ''));
                            break;
                        case frontHtmlResponse::MENU_ANNONCE_GESTION_PHOTO:
                            array_push($tFilAriane, new MenuItem('Gestion d\'annonces', 'Gestion d\'annonces','#' , ''));
                            break;
                        case frontHtmlResponse::MENU_ANNONCE_GESTION:
                            array_push($tFilAriane, new MenuItem('Gestion d\'annonces', 'Gestion d\'annonces','#' , ''));
                            break;
                        case frontHtmlResponse::MENU_RECHERCHE_PAR_MARQUE:
                            array_push($tFilAriane, new MenuItem('Recherche de voiture occasion par marque', 'Recherche de voiture occasion par marque','#' , ''));
                            break;
                        case frontHtmlResponse::MENU_RECHERCHE_PAR_CATEGORIE:
                            array_push($tFilAriane, new MenuItem('Recherche de voiture occasion par catégorie', 'Recherche de voiture occasion par catégorie','#' , ''));
                            break;
                        case frontHtmlResponse::MENU_LAST_FICHE:
                            $xLast  = parametre::get(X_LAST_ADVERT);

                            array_push($tFilAriane, new MenuItem($xLast->param_content . ' dernières annonces', $xLast->param_content . ' dernières annonces','#' , ''));
                            break;
                        case frontHtmlResponse::MENU_LAST_ESSAIS:
                            $xLastEssais  = parametre::get(X_LAST_ESSAIS);

                            array_push($tFilAriane, new MenuItem($xLastEssais->param_content . ' dernières fiches essais', $xLastEssais->param_content . ' dernières fiches essais','#' , ''));
                            break;
                    }
                } // --- end if isset tmenu 1
              break;       
        }

        return $tFilAriane;
    }



}
?>